﻿// 143. 最大异或对 jichu.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
#include <algorithm>

using namespace std;
/*
https://www.acwing.com/problem/content/145/
在给定的 N 个整数 A1，A2……AN 中选出两个进行 xor（异或）运算，得到的结果最大是多少？

输入格式
第一行输入一个整数 N。

第二行输入 N 个整数 A1～AN。

输出格式
输出一个整数表示答案。

数据范围
1≤N≤105,
0≤Ai<231
输入样例：
3
1 2 3
输出样例：
3
*/

//10 01 =1
//11 00 =0

const int N = 100010;
int son[N*31][2], cnt[N*31], idx;
int ans = 0;
int n;


void insert(int x) {
    int p = 0;
    for (int i = 30; i >= 0; i--) {
        int u = (x >> i) & 1;
        //int v = !u;
        if (0 == son[p][u]) son[p][u] = ++idx;
        p = son[p][u];
    }
    cnt[p]++;
}

int query(int x) {
    int ret = 0;
    int p = 0;
    for (int i = 30; i >= 0; i--) {
        int u = (x >> i) & 1;
        int v = !u;
        if (son[p][v] != 0) {
            ret += 1 << i;
            p = son[p][v];
        }
        else {
            p = son[p][u];
        }
    }

    return ret;
}


int main()
{
    cin >> n;
    for (int i = 0; i < n; i++) {
        int t; cin >> t;
        insert(t);
        ans = max(ans,query(t));
    }

    cout << ans << endl;

    return 0;
}

 